/*
 * Copyright (c) 2005 Chris Richardson
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
package net.chrisrichardson.foodToGo.restaurantNotificationService.impl;

import java.util.*;

import net.chrisrichardson.foodToGo.domain.*;
import net.chrisrichardson.foodToGo.restaurantNotificationService.*;
import net.chrisrichardson.foodToGo.restaurantNotificationService.commonImpl.*;

public class DomainRestaurantNotificationService implements
		RestaurantNotificationService {

	private RestaurantNotificationGateway notificationGateway;

	private OrderRepository orderRepository;

	public DomainRestaurantNotificationService(OrderRepository orderRepository,
			RestaurantNotificationGateway notificationGateway) {
		this.orderRepository = orderRepository;
		this.notificationGateway = notificationGateway;
	}

	public boolean sendOrders() {
		Collection orders = orderRepository.findOrdersToSend();
		for (Iterator it = orders.iterator(); it.hasNext();) {
			Order order = (Order) it.next();
			NotificationDetails notificationDetails = notificationGateway
					.sendOrder(order);
			Date timestamp = notificationDetails.getTimestamp();
			String messageId = notificationDetails.getMessageId();
			order.noteSent(messageId, timestamp);
		}
		return !orders.isEmpty();
	}

}